1. Technical Field
The present invention relates generally to encoder redundancy systems, and more specifically to a system and method of selecting an encoder redundancy scheme based on a projected cost of implementing an anticipated decoder error concealment algorithm.
2. Related Art
Redundancy strategies are used to correct errors introduced into electronic data and information. The types of data that can be protected may include, for example, simple data files, multimedia data (e.g., video and audio), or web pages. Errors primarily occur during transmission, but can also be caused by other activities such as writing or reading data to or from storage. Error protection schemes function by adding redundancy to the data, which can be used by a decoder or receiver to both detect and correct errors. However, because bandwidth is typically at a premium in any communication system, and redundancy schemes consume bandwidth, redundancy must be optimally implemented.
When data packets, such as compressed video, are transmitted over error prone networks (e.g., the internet or wireless networks), redundancy can be added by the encoder to counter the transmission errors. Known redundancy strategies include forward error correction coding schemes, retransmission schemes, and/or use of error resilient coding schemes. Presently, redundancy is often decided based on: (1) the characteristics of the data being encoded; and (2) the transmission channel conditions. In the data characteristic case, the amount of redundancy can be made proportional to the relative importance of the particular portion of the data being encoded. For example, in compressed video systems, such as MPEG-2, I frames are considered more important than P and B frames, and the base layer is considered more important than the enhancement layers. Thus, an I frame or a base layer generally receives more redundancy.
When transmission errors occur (i.e., data is missing or corrupted), the decoder can perform an error concealment to hide the errors. Known error concealment techniques include copying algorithms (e.g., replacing a corrupt video block in a frame with a similar block in neighboring frame), averaging (e.g., replacing a corrupt block in a video frame with an average of several blocks in similar neighboring frames), spatial interpolation, etc. The projected cost of implementing an error concealment strategy may be a measure of, e.g., the residual error after concealment, the estimated computational resources, etc. However, depending on the situation at the decoder, the projected cost for implementing error concealment can vary. For example, in a slow moving video sequence, the video data may not change a lot from frame to frame, thereby making it easy to conceal the transmission error with a simple concealment technique. Conversely, in a fast moving sequence, the decoder may require a more complex concealment technique and therefore consume significant computational overhead to conceal the error. In this case, it would be beneficial for the fast moving sequence to have more redundancy in the event an error occurs.
Unfortunately, until now, existing systems fail to take into account the projected cost of implementing error concealment at the decoder when determining the redundancy scheme implemented by the encoder. Accordingly, a need exists for a system that utilizes the projected cost of implementing error concealment when determining an encoder redundancy scheme.